﻿/*
 * Created by SharpDevelop.
 * User: kat
 * Date: 10/18/2011
 * Time: 7:16 AM
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
 
using System;
using System.Data.SqlClient;
using DAOFactory;
using System.Windows.Forms;
using System.Data;
using System.Collections.Generic;
using Business_Entity;

namespace DAOFactory
{
	/// <summary>
	/// Description of DAOUsuario.
	/// </summary>
	public partial class DAOUsuario
	{

		public DAOUsuario()
		{
			
		}
		
		public Boolean esCliente(string usuario, string pwd){
			
			try{
				SqlCommand cmd = new SqlCommand("SEGU_ES_CLIENTE_T", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				
				cmd.Parameters.Add("@USERNAME", SqlDbType.Char,18);
				cmd.Parameters["@USERNAME"].Value = usuario;
				cmd.Parameters.Add("@PASSWORD", SqlDbType.Char,12);
				cmd.Parameters["@PASSWORD"].Value = pwd;
						
				
				
				
				SqlDataReader amd = cmd.ExecuteReader();			
				
				if (amd.HasRows) 
				{
					while(amd.Read())
					{
						try
						{
							amd.Close();
							return true;
						}
						catch
						{
							System.Windows.Forms.MessageBox.Show("Error al usuario","Error");
							amd.Close();
							return false;
						}
					}
					amd.Close();
					return false;
					
					
				}
				else
				{
					amd.Close();
					return false;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.ToString(),"");
				return false;
			}
			
			
		}
		
		
		public string getUsername ( int codEmp ) {
			SqlCommand cmd = new SqlCommand("SEGU_GET_USERNAME_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODEMP", SqlDbType.Int);
			cmd.Parameters["@CODEMP"].Value = codEmp;
				
			SqlDataReader amd = cmd.ExecuteReader();			
		
			
			string result;
			
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						result = amd[0].ToString();
						amd.Close();
						return result;
						
					}
					catch
					{
						//System.Windows.Forms.MessageBox.Show("Error al obtener Rol","Error");
						amd.Close();
						return "";
					}
				}
				amd.Close();
				return "";
				
				
			}
			else
			{
				amd.Close();
				return "";
			}
		}
		
		public string getUsernameCliente ( int codigo ) {
			SqlCommand cmd = new SqlCommand("SEGU_GET_USERNAMECLIENTE_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODIGO", SqlDbType.Int);
			cmd.Parameters["@CODIGO"].Value = codigo;
				
			SqlDataReader amd = cmd.ExecuteReader();			
		
			
			string result;
			
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						result = amd[0].ToString();
						amd.Close();
						return result;
						
					}
					catch
					{
						//System.Windows.Forms.MessageBox.Show("Error al obtener Rol","Error");
						amd.Close();
						return "";
					}
				}
				amd.Close();
				return "";
				
				
			}
			else
			{
				amd.Close();
				return "";
			}
		}
		
		public string generaUsuario(int codEmp){
			
			SqlCommand cmd = new SqlCommand("SEGU_GENERA_USUARIO_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODEMP", SqlDbType.Int);
			cmd.Parameters["@CODEMP"].Value = codEmp;
			cmd.Parameters.Add("@RESULT", SqlDbType.VarChar, 12);
			cmd.Parameters["@RESULT"].Direction = ParameterDirection.Output;
			
			string result;
			
			cmd.ExecuteNonQuery();			
			result = cmd.Parameters["@RESULT"].Value.ToString();
			//ConnectionManager.closeConnection();
			
			return result;

		}
		
		
		public string generaUsuario(string nombre, string appaterno, string apmaterno){
			
			SqlCommand cmd = new SqlCommand("SEGU_GENERA_USUARIO2_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar,100);
			cmd.Parameters["@NOMBRE"].Value = nombre;
			cmd.Parameters.Add("@APPATERNO", SqlDbType.VarChar,100);
			cmd.Parameters["@APPATERNO"].Value = appaterno;
			cmd.Parameters.Add("@APMATERNO", SqlDbType.VarChar,100);
			cmd.Parameters["@APMATERNO"].Value = apmaterno;
			cmd.Parameters.Add("@RESULT", SqlDbType.VarChar, 12);
			cmd.Parameters["@RESULT"].Direction = ParameterDirection.Output;
			
			string result;
			
			cmd.ExecuteNonQuery();			
			result = cmd.Parameters["@RESULT"].Value.ToString();
			//ConnectionManager.closeConnection();
			
			return result;

		}
		
		
		public string generaUsuarioCliente(int codigo){
			
			SqlCommand cmd = new SqlCommand("SEGU_GENERA_USUARIOCLIENTE_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODIGO", SqlDbType.Int);
			cmd.Parameters["@CODIGO"].Value = codigo;
			cmd.Parameters.Add("@RESULT", SqlDbType.VarChar, 12);
			cmd.Parameters["@RESULT"].Direction = ParameterDirection.Output;
			
			string result;
			
			cmd.ExecuteNonQuery();			
			result = cmd.Parameters["@RESULT"].Value.ToString();
			//ConnectionManager.closeConnection();
			
			return result;

		}
		
		public  Boolean existeUsuario(int codEmp){
			
			try{
				SqlCommand cmd = new SqlCommand("SEGU_EXISTE_USUARIO_T", ConnectionManager.getConnection());
			
				cmd.CommandType = CommandType.StoredProcedure;
			
				cmd.Parameters.Add("@CODEMP", SqlDbType.Int);
				cmd.Parameters["@CODEMP"].Value = codEmp;
				cmd.Parameters.Add("@RESULT", SqlDbType.Int);
				cmd.Parameters["@RESULT"].Direction = ParameterDirection.Output;
				
				int result;
			
				cmd.ExecuteNonQuery();			
				result = (int) cmd.Parameters["@RESULT"].Value;		
				
				//MessageBox.Show(result.ToString(),"Aviso");
				//ConnectionManager.closeConnection();
			
				if (result == 0) return false;
				else return true;
			}
			catch{
				MessageBox.Show("Error al conectar a base de datos","Aviso");
				return false;
			}
			
			
		}
		
		public  Boolean existeUsuarioCliente(int codigo){
			
			try{
				SqlCommand cmd = new SqlCommand("SEGU_EXISTE_USUARIOCLIENTE_T", ConnectionManager.getConnection());
			
				cmd.CommandType = CommandType.StoredProcedure;
			
				cmd.Parameters.Add("@CODIGO", SqlDbType.Int);
				cmd.Parameters["@CODIGO"].Value = codigo;
				cmd.Parameters.Add("@RESULT", SqlDbType.Int);
				cmd.Parameters["@RESULT"].Direction = ParameterDirection.Output;
				
				int result;
			
				cmd.ExecuteNonQuery();			
				result = (int) cmd.Parameters["@RESULT"].Value;		
				
				//MessageBox.Show(result.ToString(),"Aviso");
				//ConnectionManager.closeConnection();
			
				if (result == 0) return false;
				else return true;
			}
			catch{
				MessageBox.Show("Error al conectar a base de datos","Aviso");
				return false;
			}
			
			
		}
		
		
		
		public string getNombreCliente(int codCliente){
			
			SqlCommand cmd = new SqlCommand("SEGU_GET_NOMBRECLIENTE_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODCLIENTE", SqlDbType.Int);
			cmd.Parameters["@CODCLIENTE"].Value = codCliente;
				
			SqlDataReader amd = cmd.ExecuteReader();			
		
			
			string result;
			
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						result = amd[0].ToString();
						amd.Close();
						return result;
						
					}
					catch
					{
						//System.Windows.Forms.MessageBox.Show("Error al obtener Rol","Error");
						amd.Close();
						return "";
					}
				}
				amd.Close();
				return "";
				
				
			}
			else
			{
				amd.Close();
				return "";
			}
		
		}
		
		public string getNombre(int codEmp){
			
			SqlCommand cmd = new SqlCommand("SEGU_GET_NOMBRE_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODEMP", SqlDbType.Int);
			cmd.Parameters["@CODEMP"].Value = codEmp;
				
			SqlDataReader amd = cmd.ExecuteReader();			
		
			
			string result;
			
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						result = amd[0].ToString();
						amd.Close();
						return result;
						
					}
					catch
					{
						//System.Windows.Forms.MessageBox.Show("Error al obtener Rol","Error");
						amd.Close();
						return "";
					}
				}
				amd.Close();
				return "";
				
				
			}
			else
			{
				amd.Close();
				return "";
			}
		
		}
		
		
		public BEUsuario getUsuario (string username, string pwd){
			SqlCommand cmd = new SqlCommand("SEGU_GET_USUARIO_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@USERNAME", SqlDbType.Char,18);
			cmd.Parameters["@USERNAME"].Value = username;
			cmd.Parameters.Add("@PASSWORD", SqlDbType.Char,18);
			cmd.Parameters["@PASSWORD"].Value = pwd;
		
			
			SqlDataReader amd = cmd.ExecuteReader();			
		
			
			
			BEUsuario usuario = new BEUsuario();
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						usuario.IdUsuario = int.Parse(amd[0].ToString());
						usuario.Username = amd[1].ToString();
						usuario.IdEstado = amd[2].ToString();
						usuario.IdRol = amd[3].ToString();
					}
					catch
					{
						//System.Windows.Forms.MessageBox.Show("Error al obtener Rol","Error");
						amd.Close();
						return null;
					}
				}
				amd.Close();
				usuario.BeEstadoSeguridad = getEstado(usuario.IdEstado);
				usuario.Rol = getRol (usuario.IdRol);
				return usuario;
			}
			else
			{
				amd.Close();
				return null;
			}
		}
		
		
		public BERol getRol(string idRol){
			SqlCommand cmd = new SqlCommand("SEGU_GET_ROL_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@ROL", SqlDbType.Char,3);
			cmd.Parameters["@ROL"].Value = idRol;
					
			SqlDataReader amd = cmd.ExecuteReader();			
		
						
			BERol rol = new BERol();
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						rol.Rol = amd[0].ToString();
						rol.Estado = amd[1].ToString();
						rol.Descripcion = amd[2].ToString();
					}
					catch
					{
						//System.Windows.Forms.MessageBox.Show("Error al obtener Rol","Error");
						amd.Close();
						return null;
					}
				}
				amd.Close();
				
				rol.Privilegio = getPrivilegio(idRol);
				return rol;
			}
			else
			{
				amd.Close();
				return null;
			}
		}
		
		public List<BEPrivilegio> getPrivilegio (string idRol){
			SqlCommand cmd = new SqlCommand("SEGU_GET_PRIVILEGIO_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@ROL", SqlDbType.Char, 3);
			cmd.Parameters["@ROL"].Value = idRol;
	
			
			SqlDataReader amd = cmd.ExecuteReader();			
		
			
			
			List<BEPrivilegio> listaPriv = new List<BEPrivilegio>();
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						BEPrivilegio priv = new BEPrivilegio();
						
						priv.IdPrivilegio = int.Parse(amd[0].ToString());
						priv.Modulo = amd[1].ToString();
						priv.Ventana = amd[2].ToString();
						
						listaPriv.Add(priv);
					}
					catch
					{
						System.Windows.Forms.MessageBox.Show("Error al obtener Privilegios","Error");
						amd.Close();
						return null;
					}
				}
				amd.Close();

				return listaPriv;
			}
			else
			{
				amd.Close();
				return null;
			}
			
			
		}
		
		public BEEstadoSeguridad getEstado(string estado){
			SqlCommand cmd = new SqlCommand("SEGU_GET_ESTADO_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@ESTADO", SqlDbType.Char,3);
			cmd.Parameters["@ESTADO"].Value = estado;
					
			SqlDataReader amd = cmd.ExecuteReader();			
		
						
			BEEstadoSeguridad estadoSeg = new BEEstadoSeguridad();
			
			if (amd.HasRows) 
			{
				while(amd.Read())
				{
					try
					{
						estadoSeg.IdEstadoSeguridad = amd[0].ToString();
						estadoSeg.Descripcion = amd[1].ToString();						
					}
					catch
					{
						//System.Windows.Forms.MessageBox.Show("Error al obtener Rol","Error");
						amd.Close();
						return null;
					}
				}
				amd.Close();
				
				return estadoSeg;
			}
			else
			{
				amd.Close();
				return null;
			}
		}
			
		
		public BEEmpleado getEmpleado (string username){
			try{
				SqlCommand cmd = new SqlCommand("SEGU_GET_EMPLEADO_T", ConnectionManager.getConnection());
			
				cmd.CommandType = CommandType.StoredProcedure;
			
				cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar,18);
				cmd.Parameters["@USERNAME"].Value = username;
				
		
			
				SqlDataReader amd = cmd.ExecuteReader();			
		
			
			
				BEEmpleado emp = new BEEmpleado();
			
				if (amd.HasRows) 
				{
					while(amd.Read())
					{
						try
						{
							emp.IdEmpleado = int.Parse(amd[0].ToString());
							emp.Nombre = amd[1].ToString();
							emp.ApPaterno = amd[2].ToString();						
							emp.ApMaterno = amd[3].ToString();
							emp.IdTipoDocIdentidad = int.Parse(amd[4].ToString());
							emp.DocIdentidad = 	amd[5].ToString();
							emp.FecNacimiento = Convert.ToDateTime(amd[6].ToString());
							emp.Sexo = amd[7].ToString();
							emp.Direccion = amd[8].ToString();
							emp.TelCasa = amd[9].ToString();
							emp.TelCelular = amd[10].ToString();
							emp.TelEmergencia = amd[11].ToString();
							emp.ContactoEmergencia = amd[12].ToString();
							emp.IdArea = int.Parse(amd[13].ToString());
							emp.IdCargo = int.Parse(amd[14].ToString());
							emp.IdUsuario = int.Parse(amd[15].ToString());
							emp.IdHorario = int.Parse(amd[16].ToString());
							emp.IdEstado = int.Parse(amd[17].ToString());
						}
						catch
						{
							System.Windows.Forms.MessageBox.Show("Error al obtener Empleado","Error");
							amd.Close();
							return null;
						}
					}
					amd.Close();

					return emp;
				}
				else
				{
					amd.Close();
					MessageBox.Show("Usted no ha sido registrado como empleado en el sistema!","Aviso");
					return null;
				}
			}
			catch {
					MessageBox.Show("Error al obtener empleado","Aviso");
        			return null;
			}
		}
		
		
		public Boolean anulaUsuarioCliente (int codCliente){
			SqlCommand cmd = new SqlCommand("SEGU_ANULAR_USUARIOCLIENTE_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODCLIENTE", SqlDbType.Int);
			cmd.Parameters["@CODCLIENTE"].Value = codCliente;
			cmd.Parameters.Add("@ESTADOTRAN", SqlDbType.Int);
			cmd.Parameters["@ESTADOTRAN"].Direction = ParameterDirection.Output;
			
			int estadoTran;
			
			cmd.ExecuteNonQuery();			
			estadoTran = (int) cmd.Parameters["@ESTADOTRAN"].Value;		
			//ConnectionManager.closeConnection();
			
			if (estadoTran == 1) return true;
			else return false;
		}
		
		
		public Boolean anulaUsuario(string username){
			SqlCommand cmd = new SqlCommand("SEGU_ANULAR_USUARIOUSERNAME_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar,50);
			cmd.Parameters["@USERNAME"].Value = username;
			cmd.Parameters.Add("@ESTADOTRAN", SqlDbType.Int);
			cmd.Parameters["@ESTADOTRAN"].Direction = ParameterDirection.Output;
			
			int estadoTran;
			
			cmd.ExecuteNonQuery();			
			estadoTran = (int) cmd.Parameters["@ESTADOTRAN"].Value;		
			//ConnectionManager.closeConnection();
			
			if (estadoTran == 1) return true;
			else return false;
		}
		
		
		
		public Boolean anulaUsuario(int codEmp){
			SqlCommand cmd = new SqlCommand("SEGU_ANULAR_USUARIO_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODEMP", SqlDbType.Int);
			cmd.Parameters["@CODEMP"].Value = codEmp;
			cmd.Parameters.Add("@ESTADOTRAN", SqlDbType.Int);
			cmd.Parameters["@ESTADOTRAN"].Direction = ParameterDirection.Output;
			
			int estadoTran;
			
			cmd.ExecuteNonQuery();			
			estadoTran = (int) cmd.Parameters["@ESTADOTRAN"].Value;		
			//ConnectionManager.closeConnection();
			
			if (estadoTran == 1) return true;
			else return false;
		}
		public Boolean modificaUsuario(int codEmp,string idRol){
			SqlCommand cmd = new SqlCommand("SEGU_MODIFICAR_USUARIO_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@CODEMP", SqlDbType.Int);
			cmd.Parameters["@CODEMP"].Value = codEmp;
			cmd.Parameters.Add("@IDROL", SqlDbType.Char, 3);
			cmd.Parameters["@IDROL"].Value = idRol;
			cmd.Parameters.Add("@ESTADOTRAN", SqlDbType.Int);
			cmd.Parameters["@ESTADOTRAN"].Direction = ParameterDirection.Output;
			
			int estadoTran;
			
			cmd.ExecuteNonQuery();			
			estadoTran = (int) cmd.Parameters["@ESTADOTRAN"].Value;		
			//ConnectionManager.closeConnection();
			
			if (estadoTran == 1) return true;
			else return false;
		}
		
		public Boolean registraUsuario (string username, string pwd, string idRol, int codEmp, string nombre, string appaterno, string apmaterno){
			try{
			//SqlCommand cmd = new SqlCommand("SEGU_REGISTRAR_USUARIO_T", ConnectionManager.getConnection());
			SqlCommand cmd = new SqlCommand("SEGU_REGISTRAR_USUARIO2_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@PWD", SqlDbType.Char, 12);
			cmd.Parameters["@PWD"].Value = pwd;
			cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar,18);
			cmd.Parameters["@USERNAME"].Value = username;
			cmd.Parameters.Add("@IDROL", SqlDbType.Char, 3);
			cmd.Parameters["@IDROL"].Value = idRol;
			cmd.Parameters.Add("@CODEMP", SqlDbType.Int);
			cmd.Parameters["@CODEMP"].Value = codEmp;
			
			cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 50);
			cmd.Parameters["@NOMBRE"].Value = nombre;
			cmd.Parameters.Add("@APPATERNO", SqlDbType.VarChar,50);
			cmd.Parameters["@APPATERNO"].Value = appaterno;
			cmd.Parameters.Add("@APMATERNO", SqlDbType.VarChar, 50);
			cmd.Parameters["@APMATERNO"].Value = apmaterno;
			
			
			cmd.Parameters.Add("@ESTADOTRAN", SqlDbType.Int);
			cmd.Parameters["@ESTADOTRAN"].Direction = ParameterDirection.Output;
			
			int estadoTran;
			
			cmd.ExecuteNonQuery();			
			estadoTran = (int) cmd.Parameters["@ESTADOTRAN"].Value;		
			//ConnectionManager.closeConnection();
			
			if (estadoTran == 1) return true;
			else return false;
			}
			catch (Exception e){
				MessageBox.Show(e.Message,"Error");
        		return false;
			}
		}
		
		
		public Boolean registraUsuarioCliente (string username, string pwd, string idRol, int codigo){
			SqlCommand cmd = new SqlCommand("SEGU_REGISTRAR_USUARIOCLIENTE_T", ConnectionManager.getConnection());
			cmd.CommandType = CommandType.StoredProcedure;
			
			cmd.Parameters.Add("@PWD", SqlDbType.Char, 12);
			cmd.Parameters["@PWD"].Value = pwd;
			cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar,18);
			cmd.Parameters["@USERNAME"].Value = username;
			cmd.Parameters.Add("@IDROL", SqlDbType.Char, 3);
			cmd.Parameters["@IDROL"].Value = idRol;
			cmd.Parameters.Add("@CODIGO", SqlDbType.Int);
			cmd.Parameters["@CODIGO"].Value = codigo;
			cmd.Parameters.Add("@ESTADOTRAN", SqlDbType.Int);
			cmd.Parameters["@ESTADOTRAN"].Direction = ParameterDirection.Output;
			
			int estadoTran;
			
			cmd.ExecuteNonQuery();			
			estadoTran = Convert.ToInt16(cmd.Parameters["@ESTADOTRAN"].Value);
			//ConnectionManager.closeConnection();
			
			if (estadoTran == 1) return true;
			else return false;
		}
		
		public List<List<string>> buscaUsuario (string usuario, string codEmp){
			
			try{
        		SqlCommand cmd = new SqlCommand("SEGU_BUSCAR_USUARIO_T", ConnectionManager.getConnection());
        	
				cmd.CommandType = CommandType.StoredProcedure;
			
				//MessageBox.Show(usuario+", "+codEmp,"Aviso");
				cmd.Parameters.Add("@USUARIO", SqlDbType.VarChar, 18);
				cmd.Parameters["@USUARIO"].Value = usuario;
				cmd.Parameters.Add("@CODIGOEMPLEADO", SqlDbType.VarChar, 5);
				cmd.Parameters["@CODIGOEMPLEADO"].Value = codEmp;
			
		
			
				SqlDataReader amd = cmd.ExecuteReader();			
		
			
				
				
				
				List<List<string>> result = new List<List<string>>();
			
				if (amd.HasRows) 
				{
					while(amd.Read())
					{
						try
						{
							List<string> fila = new List<string>();
													
							fila.Add(amd[0].ToString());
							fila.Add(amd[1].ToString());
							fila.Add(amd[2].ToString());
							fila.Add(amd[3].ToString());
							fila.Add(amd[4].ToString());
							fila.Add(amd[5].ToString());
							
							result.Add(fila);
						}
						catch
						{
							System.Windows.Forms.MessageBox.Show("Error al obtener usuario","Error");
							amd.Close();
							return null;
						}
					}
					amd.Close();
	
					return result;
				}
				else
				{
					amd.Close();
					return null;
				}
        	}
        	catch{
        		MessageBox.Show("Error al conectar a base de datos. Comunicarse con Sistemas","Error");
        		return null;
        	}
		}

		public List<List<string>> buscaUsuarioCliente (string usuario, string codEmp){
			
			try{
        		SqlCommand cmd = new SqlCommand("SEGU_BUSCAR_USUARIOCLIENTE_T", ConnectionManager.getConnection());
        	
				cmd.CommandType = CommandType.StoredProcedure;
			
				//MessageBox.Show(usuario+", "+codEmp,"Aviso");
				cmd.Parameters.Add("@USUARIO", SqlDbType.VarChar, 18);
				cmd.Parameters["@USUARIO"].Value = usuario;
				cmd.Parameters.Add("@NOMBRECLIENTE", SqlDbType.VarChar, 200);
				cmd.Parameters["@NOMBRECLIENTE"].Value = codEmp;
			
		
			
				SqlDataReader amd = cmd.ExecuteReader();			
		
			
				
				
				
				List<List<string>> result = new List<List<string>>();
			
				if (amd.HasRows) 
				{
					while(amd.Read())
					{
						try
						{
							List<string> fila = new List<string>();						
							fila.Add(amd[0].ToString());
							fila.Add(amd[1].ToString());
							fila.Add(amd[2].ToString());
							fila.Add(amd[3].ToString());
							fila.Add(amd[4].ToString());
							fila.Add(amd[5].ToString());
							
							result.Add(fila);
						}
						catch
						{
							System.Windows.Forms.MessageBox.Show("Error al obtener usuario","Error");
							amd.Close();
							return null;
						}
					}
					amd.Close();
	
					return result;
				}
				else
				{
					amd.Close();
					return null;
				}
        	}
        	catch{
        		MessageBox.Show("Error al conectar a base de datos. Comunicarse con Sistemas","Error");
        		return null;
        	}
		}
		
		public static Boolean validaUsuario(string usuario, string pwd){
			
			try{
				SqlCommand cmd = new SqlCommand("SEGU_VALIDAR_USUARIO_T", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				
				cmd.Parameters.Add("@USERNAME", SqlDbType.Char,18);
				cmd.Parameters["@USERNAME"].Value = usuario;
				cmd.Parameters.Add("@PASSWORD", SqlDbType.Char,12);
				cmd.Parameters["@PASSWORD"].Value = pwd;
						
				
				
				
				SqlDataReader amd = cmd.ExecuteReader();			
				
				if (amd.HasRows) 
				{
					while(amd.Read())
					{
						try
						{
							amd.Close();
							return true;
						}
						catch
						{
							System.Windows.Forms.MessageBox.Show("Error al usuario","Error");
							amd.Close();
							return false;
						}
					}
					amd.Close();
					return false;
					
					
				}
				else
				{
					amd.Close();
					return false;
				}
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.ToString(),"");
				return false;
			}
				
		}
		
		
		
		public int registraAsistencia (string usuario, DateTime ahora)
		{
			int estadoTran = 0;
			
			try
			{
				SqlCommand cmd = new SqlCommand("RRHH_REGISTRAR_ASISTENCIA_L", ConnectionManager.getConnection());
				cmd.CommandType = CommandType.StoredProcedure;
				
				cmd.Parameters.Add("@IDLOGIN", SqlDbType.VarChar, 20);
                cmd.Parameters["@IDLOGIN"].Value = usuario;
				cmd.Parameters.Add("@FECHA", SqlDbType.DateTime);
				cmd.Parameters["@FECHA"].Value = ahora;
				cmd.Parameters.Add("@ESTADOTRAN", SqlDbType.Int);
				cmd.Parameters["@ESTADOTRAN"].Direction = ParameterDirection.Output;			
				
				cmd.ExecuteNonQuery();
				estadoTran = (int) cmd.Parameters["@ESTADOTRAN"].Value;
			}
			catch
			{
				System.Windows.Forms.MessageBox.Show("Error al registrar asistencia","Error");
			}
			
			return estadoTran;	
		}
	}
}
